package com.mode;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import com.model.Recipe;

import android.R.integer;

public class MenuListDataObj {
	
	public List<SelectedMenuObj> menuObjs;
//	public HashMap<String, ArrayList<SelectedMenuObj>> hashMenuList;
	public List<CategoryObj> categoryObjs;
	public MenuListDataObj()
	{
		menuObjs= new ArrayList<SelectedMenuObj>();		
//		hashMenuList=new HashMap<String, ArrayList<SelectedMenuObj>>();
		categoryObjs=new ArrayList<CategoryObj>();
	}
	public List<SelectedMenuObj> getMenuObjs() {
		return menuObjs;
	}
	public void setMenuObjs(List<SelectedMenuObj> menuObjs) {
		this.menuObjs = menuObjs;
	}
	public List<CategoryObj> getCategoryObjs() {
		return categoryObjs;
	}
	public void setCategoryObjs(List<CategoryObj> categoryObjs) {
		this.categoryObjs = categoryObjs;
	}
//	public HashMap<String, ArrayList<SelectedMenuObj>> getHashMenuList() {
//		return hashMenuList;
//	}
//	public void setHashMenuList(
//			HashMap<String, ArrayList<SelectedMenuObj>> hashMenuList) {
//		this.hashMenuList = hashMenuList;
//	}
	
	
	public void ChangeMenuListByObj(SelectedMenuObj menu)
	{
		String cidString=menu.getCid();
		for(CategoryObj categoryObj:categoryObjs)
		{
			if(cidString.equals(categoryObj.getId()+""))
			{
				List<SelectedMenuObj> cList=categoryObj.getSelectedMenuObjs();
				Iterator<SelectedMenuObj> iterator;
				for (iterator = cList.iterator(); iterator.hasNext();) {
					SelectedMenuObj menuinfo =iterator.next();
					if(menuinfo.getId().equals(menu.getId()))
					{
						menuinfo.setCount(menu.getCount());
						menuinfo.setTotalPrice(menu.getTotalPrice());
						break;
					}
				}
			}
		}
		
	}
	public void InitMenuList(List<Recipe> recipes)
	{
		for(Recipe recipe:recipes)
		{
			String id=recipe.getId().toString();
			String cid=recipe.getCid().toString();
			String name = recipe.getName();
			String description = recipe.getDescription();
			double price=recipe.getPrice();
			String image = recipe.getImage();
			MenuObj menuInfo=new MenuObj();
			menuInfo.setId(id);
			menuInfo.setCid(cid);
			menuInfo.setName(name);
			menuInfo.setDescription(description);
			menuInfo.setImage(image);
			menuInfo.setPrice(price);
			SelectedMenuObj sMenuInfo=new SelectedMenuObj(menuInfo);
			menuObjs.add(sMenuInfo);
		}
	}
//	public void InitHashMenuList()
//	{
//		Iterator<SelectedMenuObj> iterator;
//		for(iterator=menuObjs.iterator();iterator.hasNext();)
//		{
//			SelectedMenuObj menuObj=iterator.next();
//			String cidString=menuObj.getCid();
//			if(!hashMenuList.containsKey(cidString))
//			{
//				ArrayList<SelectedMenuObj> list1=new ArrayList<SelectedMenuObj>();
//				hashMenuList.put(cidString, list1);
//			}
//			ArrayList<SelectedMenuObj> list=hashMenuList.get(cidString);
//			list.add(menuObj);
//		}
//		menuObjs.clear();
//		menuObjs=null;
//	}
//	public void RestoreHashMenuList()
//	{
//		Iterator<String> iterator;
//		for(iterator=hashMenuList.keySet().iterator();iterator.hasNext();)
//		{
//			String strKeyString=iterator.next();
//			ArrayList<SelectedMenuObj> menuObjs=hashMenuList.get(strKeyString);
//			Iterator<SelectedMenuObj> iterator2;
//			for(iterator2=menuObjs.iterator();iterator2.hasNext();)
//			{
//				SelectedMenuObj menuObj=iterator2.next();
//				menuObj.setCount(0);
//				menuObj.setLockCount(0);
//				menuObj.setCommit(false);
//				menuObj.setTotalPrice(0);
//			}
//		}
//	}
	public void initCategoryMenuList()
	{
		Iterator<SelectedMenuObj> iterator;
		for(iterator=menuObjs.iterator();iterator.hasNext();)
		{
			SelectedMenuObj menuObj=iterator.next();
			String cidString=menuObj.getCid();
			for(CategoryObj categoryObj:categoryObjs)
			{
				if(cidString.equals(categoryObj.getId()+""))
				{
					categoryObj.getSelectedMenuObjs().add(menuObj);
					break;
				}
			}
		}
		menuObjs.clear();
		menuObjs=null;
	}
	public void RestoreCategoryMenuList()
	{
		for(CategoryObj categoryObj:categoryObjs)
		{
			List<SelectedMenuObj> menuObjs=categoryObj.getSelectedMenuObjs();
			Iterator<SelectedMenuObj> iterator2;
			for(iterator2=menuObjs.iterator();iterator2.hasNext();)
			{
				SelectedMenuObj menuObj=iterator2.next();
				menuObj.setCount(0);
				menuObj.setLockCount(0);
				menuObj.setCommit(false);
				menuObj.setTotalPrice(0);
			}
		}
	}
}
